package com.allqj.sfx.ddd.member.domain.service;

import com.allqj.sfx.ddd.member.domain.entity.flow.FlowApprover;
import org.springframework.stereotype.Component;

/**
 * @author sjw
 * @className FlowEngineService
 * @date 2022/7/21 17:56
 * @description: 工作流——任务
 */

@Component
public class FlowTaskService {
    /**
     * 启动流程
     *
     * @param flowDefineCode 流程定义编码
     * @param extParam       业务扩展参数
     */
    public void create(String flowDefineCode, String extParam) {
    }

    /**
     * 通过
     *
     * @param flowInstanceId 流程实例
     * @param approver       审核人
     * @param callBack       回调
     */
    public void pass(Integer flowInstanceId, FlowApprover approver, FlowCallBack callBack) {
        // 1 获取当前实例&校验状态
        // 2 获取实例的当前激活任务
        // 3 通过 taskService.pass
        // 4 更新实例状态
        // 5 回调
    }

    /**
     * 拒绝
     *
     * @param flowInstanceId 流程实例
     * @param approver       审核人
     * @param callBack       回调
     */
    public void reject(Integer flowInstanceId, FlowApprover approver, FlowCallBack callBack) {
        // 1 获取当前实例&校验状态
        // 2 获取实例的当前激活任务
        // 3 通过 taskService.pass
        // 4 更新实例状态
        // 5 回调
    }
}
